ntpd C/S 合一。
ntpd对下层client来说是 service server,对于上层server来说它是client,也就是说NTPD已经不对服务端和客户端进行区分了。ntpd根据配置文件的参数决定是要为其他服务器提供时钟服务或者是从其他服务器同步时钟。
ntpd 与 ntpdate 的介绍如下:
ntpd 是一个时间服务。采用柔性时间调整策略,让时间的变化和调整尽量减少对业务的影响。
ntpd 不盲目相信远端时钟,服务器时间和远端时钟超过恐慌阈值(默认1000秒),ntpd 甚至会停止时间同步。
ntpd 自己会思考。它相信本地时间可能不对,但是不会忽快忽慢甚至停滞。ntpd 通过多次收发包选择权威稳定的时间源,算出双方间的网络延迟,然后才会采信新的远端时钟进行时间同步。
ntpd 在和时间服务器的同步过程中,会把 BIOS 计时器的振荡频率偏差——或者说 Local Clock 的自然漂移 (drift) ——记录下来。这样即使网络有问题,本机仍然能维持一个相当精确的走时。
ntpd 与 ntpdate两者不可同时运行。
ntpdate 机制是 one-shot 同步, 若要定时同步需搭配 cron。
ntpd 是 daemon, 可自动定期将系统时间和 NTP server 更新。ntpd 不仅仅是时间同步服务器,它还可以做客户端与标准时间服务器进行同步时间,而且是平滑同步,并非 ntpdate 立即同步。也正如此两者不可同时运行。
ntp采用udp协议,端口号为123,如下
x
root@OpenWrt:~# netstat -tlunp | grep ntp
udp 0 0 :::123 :::* 3348/ntpd
openwrt 下的ntpd默认是来自busybox 的 busybox-ntpd
busybox-ntpd 的配置保存在 /etc/config/system
默认为客户端, /etc/config/system 中相关配置如下
xxxxxxxxxx
config timeserver 'ntp'
option enabled '1'
option enable_server '0'
list server '0.openwrt.pool.ntp.org'
list server '1.openwrt.pool.ntp.org'
list server '2.openwrt.pool.ntp.org'
list server '3.openwrt.pool.ntp.org'
新建 /etc/hotplug.d/ntp/20-ntpd-logger 内容如下
x
[ $ACTION = "step" ] && logger -t ntpd Time set, stratum=$stratum interval=$poll_interval offset=$offset
[ $ACTION = "stratum" ] && logger -t ntpd Stratum change, stratum=$stratum interval=$poll_interval offset=$offset
重启,并查看syslog 中 ntp的日志(如下)
x
root@OpenWrt:~# cat /tmp/log/syslog/local_syslog.log | grep ntpd
2022-07-06T09:38:19.875968+00:00 OpenWrt ntpd: Stratum change, stratum=4 interval=1 offset=-0.264873
2022-07-06T09:38:20.920812+00:00 OpenWrt ntpd: Stratum change, stratum=3 interval=1 offset=-0.269187
修改 /etc/config/system,enable_server 改为1
xconfig timeserver 'ntp'
option enabled '1'
option enable_server '1'
重启服务
xxxxxxxxxx
/etc/init.d/sysntpd restart
在相同网段的客户端设备中配置ntp server的地址为 这台 ntpd 服务端的IP(192.168.0.1)
ntpd 服务端当前时间为
x
root@OpenWrt:~# date
Wed Jul 6 11:06:38 UTC 2022
修改客户端A上的日期并手动从ntpd服务端获取时间,如下
x
root@OpenWrt00:~# date -s 2015-10-25
Sun Oct 25 00:00:00 2015
root@OpenWrt00:~# date
Sun Oct 25 00:00:01 2015
root@OpenWrt00:~# ntpdate 192.168.0.1
6 Jul 19:11:53 ntpdate[7581]: step time server 192.168.0.1 offset 211403496.657
331 sec
root@OpenWrt00:~# date
Wed Jul 6 19:11:56 2022
注:客户端A上的时间和服务端的时间不同原因如下